home *** CD-ROM | disk | FTP | other *** search
Wrap
'' Include files '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Avalilable Disk Space '' Global variables GLOBAL TitleShortName$ GLOBAL TitleLongName$ GLOBAL MVBFileName$ GLOBAL PromptForPath% GLOBAL DefaultPath$ GLOBAL ProgManGroup$ GLOBAL ProgManItem$ GLOBAL ReStartD$ GLOBAL WinDir$ GLOBAL WinSysDir$ GLOBAL WINDRIVE$ ''Windows Drive Letter. GLOBAL CHECKSTATES$ GLOBAL szIni$ GLOBAL szGork$ GLOBAL SizeReq& '' Total Disk Size required for installation TitleShortName$ = "atsex" TitleLongName$ = "All That Sex" MVBFileName$ = "atsex" PromptForPath% = 0 DefaultPath$ = "c:\atsex" ProgManGroup$ = "accessories" ProgManItem$ = "AllThatSex" '*********************************************************************** '** Mainline '*********************************************************************** GLOBAL CUIDLL$ '' Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST CHECK = 2500 CONST SMALLWIN = 2200 CONST RESTART = 2600 CONST RESTARTII = 2700 '' Bitmap ID CONST LOGO = 1 '' Functions and subroutines DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION GetTitleDir (szDefault$) AS STRING DECLARE SUB ModifyViewerIni DECLARE SUB ModifyProgramManager DECLARE SUB Install DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER DECLARE fUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetTitle "All That Sex" SetBitmap CUIDLL$, LOGO WIN32ENABLED% = 0 MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF IF OnWindowsNT() THEN i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF '' Read in the INF file. WINDRIVE$ = MID$(GetWindowsDir, 1, 1) ReadInfFile GetSymbolValue("STF_CWDDIR") + "TITLE.INF" WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF ClearCopyList szTitleDir$ = GetWindowsDir() WinDir$ = GetWindowsDir() SrcDir$ = GetSymbolValue("STF_SRCDIR") + "SETUP\" DEST$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() szGork$ = GetSymbolValue("STF_SRCDIR") szIni$ = MakePath(GetWindowsDir(), "VIEWER.INI") AddSectionFilesToCopyList "System Files", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "Installed Title Files", GetSymbolValue("STF_SRCDIR"), szTitleDir$ AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$ AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$ '' Check windrive diskspace SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB SMALLWIN END END IF Install '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = DEST$ + "\_msrstrt.exe" Batch$ = DEST$ + "\_mssetup.bat" empty$ = "" RESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO RESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO RESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO RESTART ELSE UIPop 1 END IF END IF QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN SMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO SMALLWIN END IF UIPop 1 RETURN '************************************************************************* '** Purpose: '** Prompts the user for a path for the title files '** Arguments: '** szDefault$ - default path '** Returns: '** New valid path name, or "" if the user quit. '************************************************************************* FUNCTION GetTitleDir (szDefault$) STATIC AS STRING SetSymbolValue "String", TitleShortName$ SetSymbolValue "EditTextIn", szDefault$ SetSymbolValue "EditFocus", "ALL" GETPATH: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, "FHelpDlgProc") IF sz$ = "CONTINUE" THEN szTitleDir$ = GetSymbolValue("EditTextOut") IF IsDirWritable(szTitleDir$) = 0 THEN BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 GOTO GETPATH END IF UIPop 1 CreateDir szTitleDir$, cmoNone ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATH ELSE szTitleDir$ = "" END IF GetTitleDir = szTitleDir$ END FUNCTION '** '** Purpose: '** Performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SetRestartDir WinDir$ CopyFilesInCopyList ''Updating WIN.INI and SYSTEM.INI IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF CreateIniKeyValue "WIN.INI", "Extensions", "MVB", "mviewer2.exe", cmoNone CreateIniKeyValue szIni$, MVBFileName$, "Name", TitleLongName$, cmoOverwrite CreateIniKeyValue szIni$, MVBFileName$, "Path", GetSymbolValue("STF_SRCDIR"), cmoOverwrite CreateIniKeyValue szIni$, "FILES", MVBFileName$ + ".MVB", GetSymbolValue("STF_SRCDIR") + "," + "Please insert the " + TitleLongName$ + " disk.", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' Mplayer CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".ICO")+",0,0,0,"+szGork$, cmoOverwrite Run ("profdisp.exe") END SUB '************************************************************************* '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION '************************************************************************* '** Purpose: '** Registers title in VIEWER.INI '************************************************************************* SUB ModifyViewerIni STATIC '' Get the VIEWER.INI file szIni$ = MakePath(GetWindowsDir(), "VIEWER.INI") '' First register the title file, setting the Name and Path entries. '' We assume that the MVB file is the same directory as SETUP.EXE. '' '' CUSTOMIZATION: If you're installing multiple MVB files, copy the '' following two statements for each additional file, substituting '' the appropriate long name and MVB filename for the TitleLongName$ '' and MVBFileName$ variables. CreateIniKeyValue szIni$, MVBFileName$, "Name", TitleLongName$, cmoOverwrite CreateIniKeyValue szIni$, MVBFileName$, "Path", GetSymbolValue("STF_SRCDIR"), cmoOverwrite '' Now we have to register the MVB file in the [FILES] section, so '' Viewer can find files that are not on the path and display a '' special message when a file is not found. CreateIniKeyValue szIni$, "FILES", MVBFileName$ + ".MVB", GetSymbolValue("STF_SRCDIR") + "," + "Please insert the " + TitleLongName$ + " disk.", cmoOverwrite '' CUSTOMIZATION: If you're installing a Help title or any custom DLLs, '' you should copy the preceding statement for each extra title or DLL. '' '' Example for installing an extra title: '' '' CreateIniKeyValue szIni$, "FILES", "GALHELP.MVB", GetSymbolValue("STF_SRCDIR") + "," + "Please insert the Viewer 2.0 Gallery disk.", cmoOverwrite '' '' Example for installing a custom DLL: '' '' CreateIniKeyValue szIni$, "FILES", "GALLERY.DLL", GetSymbolValue("STF_SRCDIR") + "," + "A required file is missing. Please reinstall the Viewer Gallery.", cmoOverwrite END SUB '************************************************************************* '** Purpose: '** Creates program manager entries for the title '************************************************************************* SUB ModifyProgramManager STATIC '' Create the program manager group szGork$ = GetSymbolValue("STF_SRCDIR") '' j% = DoMsgBox(szGork$, "Path Name", 0) CreateProgmanGroup ProgmanGroup$, "", cmoNone ShowProgmanGroup ProgmanGroup$, 1, cmoNone '' Create an entry for the title '' [no icon] CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), ",,,,szGork$", cmoOverwrite '' CUSTOMIZATION: '' '' To create additional Program Manager items, copy the preceding '' statement for each additional item, substituting the appropriate '' name for the MVBFileName$ variable. '' '' To display a custom icon with the Program Manager item, specify '' the icon filename with the fourth parameter (this parameter is '' currently an empty string, ""). The following example specifies '' an icon with the same filename as the .MVB file: '' CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".ICO")+",0,0,0,"+szGork$, cmoOverwrite END SUB